home *** CD-ROM | disk | FTP | other *** search
/ Super CD / Super CD.iso / teach / eng-word / attack.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-01-26  |  29.0 KB  |  751 lines

  1. 10  'COPYRIGHT 1983 DAVIDSON & ASSOCIATES
  2. 30  GOSUB 1640
  3. 50  GOSUB 6500
  4. 60  GOSUB 5980
  5. 70    GOSUB 2060
  6. 80    IF DISKERROR THEN 70
  7. 90    GOSUB 2670
  8. 100    IF DISKERROR THEN 70
  9. 110   GOSUB 2880
  10. 120     IF CHOICE=5 THEN 70
  11. 130     IF CHOICE=6 THEN 150
  12. 140   ON CHOICE GOSUB 3100,3620,5170,180: GOTO 110
  13. 150   GOSUB 7010
  14. 160  END
  15. 180  GOSUB 1440
  16. 190  GOSUB 1160
  17. 200  WHILE P <> ESCKEY AND WD < WRDS
  18. 210    GOSUB 4170
  19. 220    IF SEQUENCE=5 THEN GOSUB 1070
  20. 230    GOSUB 910
  21. 240    GOSUB 730
  22. 250    GOSUB 310
  23. 260    WD=WD+1
  24. 270  WEND
  25. 280  GOSUB 1340
  26. 290  RETURN
  27. 310  WHILE P <> ESCKEY AND NOT NU
  28. 320    P$=INKEY$:IF P$<>"" THEN P=ASC(P$) ELSE P=0
  29. 330    IF P=SHT OR P=SHTT THEN GOSUB 450
  30. 340    IF P=LK OR P=LKK OR P=RK OR P=RKK THEN GOSUB 400
  31. 350    IF BUGTIMER > BUGTIME THEN GOSUB 630
  32. 360    TIMER=TIMER+1:IF TIMER > REDUCETIMER THEN GOSUB 580
  33. 370  WEND
  34. 380  RETURN
  35. 400  IF SOUNDD THEN SOUND 1000,1: SOUND 500,1
  36. 410  LOCATE 16:J=SH(SH,0,MODE):FOR I=0 TO 3:LOCATE ,J:PRINT "    ":NEXT:IF          (P=LK OR P=LKK) AND SH > 0 THEN SH=SH-1 ELSE IF (P=RK OR P=RKK) AND SH < 3       THEN SH=SH+1
  37. 420  COLOR BRN:LOCATE 16:J=SH(SH,0,MODE):FOR I=0 TO 3:LOCATE ,J:PRINT MAN$(I):       NEXT:TIMER=TIMER+5
  38. 430  RETURN
  39. 450  IF SOUNDD THEN FOR I=50 TO 250 STEP 100:SOUND I,1:NEXT
  40. 460  COLOR FG:LOCATE 17,SH(SH,0,MODE):PRINT HEAD$(0):LOCATE ,SH(SH,O,MODE):PRINT     HEAD$(1):IF BUGTIMER > BUGTIME THEN J=11 ELSE J=SH(SH,1,MODE)+3
  41. 470  IF SOUNDD THEN SOUND 500,1
  42. 480  FOR I=15 TO J STEP -1:LOCATE I,SH(SH,0,MODE):PRINT MAN$(0):LOCATE ,SH          (SH,0,MODE):PRINT "    ":NEXT
  43. 490  IF J=11 AND SH(SH,0,MODE)=BUG+(LEVEL > 4) THEN GOSUB 990:GOTO 560
  44. 500  IF SH=RANS-1 AND J < 11 THEN GOSUB 800
  45. 510  LOCATE J,SH(SH,0,MODE):PRINT "    "
  46. 520  COLOR BRN:LOCATE 16:FOR I=0 TO 3:LOCATE ,SH(SH,0,MODE):PRINT MAN$(I):NEXT
  47. 530  IF SH <> RANS-1 AND J < 11 THEN GOSUB 950: 'WRONG ANSWER
  48. 540  IF J < 11 THEN NU=-1
  49. 550  TIMER=0
  50. 560  RETURN
  51. 580  IF BUGTIMER > BUGTIME THEN 610
  52. 590  LOCATE TIME,39-33*MONO:PRINT " ":TIME=TIME+1:TIMER=0:IF SOUNDD THEN SOUND       65,1
  53. 600  BUGTIMER=BUGTIMER+1:IF TIME=20 THEN NU=-1:TIME=19:GOSUB 960
  54. 610  RETURN
  55. 630  IF BUGTIMER=BUGTIME+1 THEN BUGCOUNT=BUGCOUNT+1:BUGTIMER=BUGTIMER+1:IF           BUGCOUNT < 6 AND SOUNDD THEN RESTORE 710:FOR I=1 TO 5:READ J:READ K:SOUND       J,K:NEXT                                                      
  56. 640  IF BUGCOUNT > 5 THEN BUGTIMER=0:GOTO 700
  57. 650  ZZ=NOT ZZ:IF LEVEL > 2 THEN ZZ=0
  58. 660  COLOR GREEN:LOCATE 11,BUG:PRINT BUG$(BUGCOUNT):IF NOT ZZ THEN BUG=BUG+1
  59. 670  IF SOUNDD AND NOT ZZ THEN SOUND 5587,1
  60. 680  IF NOT ZZ AND LEVEL > 4 THEN BUG=BUG+1
  61. 690  IF BUG > 35-30*MONO THEN LOCATE 11,36-30*MONO:PRINT "  ":BUGTIMER=0:BUG=1-      10*MONO:TIMER=0
  62. 700  RETURN
  63. 710  DATA 1047,2,1175,2,1319,2,1397,2,1047,3
  64. 730  COLOR RED:FOR K=0 TO 2:LOCATE SH(SH,1,MODE)+K,SH(SH,2,MODE):PRINT BOX$(K,1);    :NEXT
  65. 740  FOR K=0 TO 2:LOCATE SH(SH,1,MODE)+K,SH(SH,2,MODE):PRINT BOX$(K,1);:NEXT
  66. 750  COLOR FG:FOR I=0 TO 3:LOCATE SH(I,1,MODE)+1,SH(I,2,MODE)+1:PRINT CLEARR$;:      LOCATE ,SH(I,3,MODE)-LEN(ANSR$(I))/2:PRINT ANSR$(I):NEXT
  67. 760  LOCATE 22,1-21*MONO:PRINT STRING$(40,32):A$=ARRAY$(QUIZ(WD)*8+1):K=20-LEN      (A$)/2-19*MONO:IF K < 1 THEN K=1
  68. 770  LOCATE 22,K:PRINT A$:NU=0
  69. 780  RETURN
  70. 800  LOCATE J,SH(SH,0,MODE):PRINT "    "
  71. 810  FOR I=0 TO 2:LOCATE SH(SH,1,MODE)+I,SH(SH,2,MODE):PRINT BOX$(I,2);:NEXT
  72. 820  LOCATE SH(SH,1,MODE)+1,SH(SH,3,MODE)-LEN(ANSR$(SH))/2:PRINT ANSR$(SH)
  73. 830  IF SOUNDD THEN FOR I=1 TO 9:SOUND 600,1:SOUND 650,1:NEXT
  74. 840  FOR I=2 TO 0 STEP-1:FOR K=0 TO 2:LOCATE SH(SH,1,MODE)+K,SH(SH,2,MODE):PRINT     BOX$(K,I);:NEXT:LOCATE SH(SH,1,MODE)+1,SH(SH,3,MODE)-LEN(ANSR$(SH))/2:PRINT     ANSR$(SH):NEXT
  75. 850  FOR I=0 TO 2:LOCATE SH(SH,1,MODE)+I,SH(SH,2,MODE):PRINT STRING$                (15-4*MONO,32);:NEXT
  76. 860  COLOR LITEGREEN:SCRE=SCRE+VLUE:LOCATE 25,12-18*MONO:PRINT SCRE;
  77. 870  SEQUENCE=SEQUENCE+1:LOCATE 25,6-SEQUENCE-4*MONO-((6-SEQUENCE)*MONO): PRINT     " ";
  78. 880  A$=INKEY$:IF A$ <> "" THEN 880
  79. 890  RETURN
  80. 910  COLOR RED:FOR I=TIME TO THEIGHT STEP-1:LOCATE I,39-33*MONO:PRINT CHR$           (219+42*MONO):NEXT:TIME=THEIGHT
  81. 920  A$=INKEY$:IF A$ <> "" THEN 920
  82. 930  RETURN
  83. 950  COLOR LITEGREEN:SEQUENCE=0:LOCATE 25,1-5*MONO:FOR I=1 TO 5:PRINT S$(LEVEL)      SPC(-MONO):NEXT
  84. 960  COLOR BG,FG:LOCATE SH(RANS-1,1,MODE)+1,SH(RANS-1,2,MODE)+1: PRINT CLEARR$;:     LOCATE ,SH(RANS-1,3,MODE)-LEN(ANSR$(RANS-1))/2:PRINT ANSR$(RANS-1):COLOR FG    ,BG
  85. 970  RETURN
  86. 990  COLOR LITEGREEN:LOCATE 11,SH(SH,0,MODE)-5+(SH=3):PRINT CHR$(15);" BONUS";2*     VLUE;CHR$(15)
  87. 1000  IF SOUNDD THEN FOR I=1 TO 16:SOUND 850,1:SOUND 880,1:NEXT ELSE FOR I=1 TO       3000:NEXT
  88. 1010  BUGTIMER=0:BUG=1-10*MONO:SCRE=SCRE+(2*VLUE):TIMER=0
  89. 1020  LOCATE 25,12-18*MONO:PRINT SCRE;
  90. 1030  LOCATE 11,SH(SH,0,MODE)-5+(SH=3):PRINT "              "
  91. 1040  COLOR BRN:LOCATE 16:FOR I=0 TO 3:LOCATE,SH(SH,0,MODE):PRINT MAN$(I):NEXT
  92. 1050  RETURN
  93. 1070  SEQUENCE=0:IF LEVEL < 5 THEN LEVEL=LEVEL+1
  94. 1080  VLUE=LEVEL*(100+(50*(SD-1)))
  95. 1090  COLOR ACCENT:LOCATE 11,15-19*MONO:PRINT "- LEVEL";LEVEL;"-"
  96. 1100  IF SOUNDD THEN FOR I=1 TO 15:SOUND 100,1:SOUND 110,1:NEXT ELSE FOR I=1 TO       2000:NEXT
  97. 1110  COLOR LITEGREEN:LOCATE 25,24-25*MONO:PRINT VLUE;:IF VLUE > 999 AND CLR THEN     LOCATE ,29:PRINT "H";
  98. 1120  LOCATE 25,1-5*MONO:FOR I=1 TO 5:PRINT S$(LEVEL) SPC(-MONO):NEXT:PRINT " ";
  99. 1130  LOCATE 11,15-19*MONO:PRINT "               "
  100. 1140  RETURN
  101. 1160  CLS:COLOR BLUE
  102. 1170  A$=INKEY$:IF A$ <> "" THEN 1170
  103. 1180  LOCATE 20,2-4*MONO:PRINT STRING$(35-34*MONO,196)
  104. 1190  LOCATE 24,1-5*MONO:PRINT STRING$(39-31*MONO,196);
  105. 1200  LEVEL=1:TIMER=0:SH=1:MODE=-1*MONO:TIME=19:COLOR FG
  106. 1210  COLOR LITEGREEN:LOCATE 25,1-5*MONO:FOR I=1 TO 5:PRINT S$(LEVEL) SPC(-MONO):     NEXT:PRINT SPC(1-7*MONO) "Score" SPC(1-MONO) "000" SPC(3-6*MONO) "Value"        SPC(-MONO) VLUE SPC(-9*MONO) "High" SPC(-MONO) HI;
  107. 1220  SEQUENCE=0:BUG=1-10*MONO:BUGCOUNT=0:BUGTIMER=0:WD=0:LEVEL=1
  108. 1230  VLUE=100+(50*(SD-1)):COLUMN=0:ESC=0:P=0:SCRE=0
  109. 1240  CLEARR$=STRING$(13-4*MONO,32):COLOR BLUE
  110. 1250  FOR I=THEIGHT TO 19:LOCATE I,38-33*MONO:PRINT CHR$(179);CHR$(32);CHR$(179):     NEXT
  111. 1260  LOCATE 20,38-33*MONO:PRINT CHR$(192);CHR$(196);CHR$(217)
  112. 1270  COLOR BRN:LOCATE 16:FOR I=0 TO 3:LOCATE ,SH(1,0,MODE):PRINT MAN$(I):NEXT
  113. 1280  COLOR RED:FOR I=0 TO 3:K=SH(I,1,MODE):L=SH(I,2,MODE):FOR J=0 TO 2:LOCATE        K+J,L:PRINT BOX$(J,1);:NEXT:NEXT
  114. 1290  GOSUB 910
  115. 1300  IF SOUNDD THEN RESTORE 1320:FOR I=1 TO 7:READ J:READ K:SOUND J,K:NEXT
  116. 1310  RETURN
  117. 1320  DATA 523,7,659,3,783,6,523,3,659,3,783,3,523,6
  118. 1340  COLOR FG:LOCATE 11:FOR I=1 TO 15-20*MONO:LOCATE ,I:PRINT " GAME";:IF SOUNDD     THEN SOUND 400+I*10,1
  119. 1350  NEXT
  120. 1360  FOR I=30-36*MONO TO 21-20*MONO STEP-1:LOCATE ,I:PRINT "OVER ";:IF SOUNDD        THEN SOUND 800+I*10,1
  121. 1370  NEXT
  122. 1380  A$="Final Score"+STR$(SCRE):LOCATE 13,20-20*MONO-LEN(A$)/2:PRINT A$
  123. 1390  IF SOUNDD THEN FOR I=1 TO 20:SOUND 1200,1:SOUND 1400,1:NEXT
  124. 1400  IF SCRE > HI THEN LOCATE 22,1:COLOR -25*(FG=7 AND NOT MONO)-16*                 (FG=0)-26*(FG=7 AND MONO):PRINT SPC(11-20*MONO) "New  High  Score"              SPC(13-20*MONO):HI=SCRE
  125. 1410  FOR I=1 TO 10000:NEXT:IF NOT SOUNDD THEN FOR I=1 TO 2000:NEXT
  126. 1420  RETURN
  127. 1440  GOSUB 6460:I=6-11*MONO:COLOR ACCENT
  128. 1450  LOCATE 5,I:PRINT "Word Attack! speeds:":COLOR FG
  129. 1460  LOCATE 8,I:PRINT "1.   Regular Speed":PRINT
  130. 1470  LOCATE ,I:PRINT "2.   Faster Speed":PRINT
  131. 1480  LOCATE ,I:PRINT "3.   Fastest Speed":PRINT:PRINT:PRINT
  132. 1490  COLOR ACCENT:LOCATE ,I:PRINT "Please select speed (press 1-3)":COLOR FG
  133. 1500  A$=INKEY$:IF A$ <> "" THEN 1500
  134. 1510  GOSUB 4100: 'RANDOMIZE
  135. 1520  A$=INKEY$:SD=VAL(A$):IF SD < 1 OR SD > 3 THEN 1520
  136. 1530  REDUCETIMER=10:THEIGHT=10:IF SD > 1 THEN REDUCETIMER=10:THEIGHT=13:IF SD>2      THEN REDUCETIMER=16:THEIGHT=17
  137. 1540  BUGTIME=25-6*SD:VLUE=100+(50*(SD-1))
  138. 1550  RETURN
  139. 1570  FOR J=0 TO 2
  140. 1580  BOX$(0,J)=STRING$(15-4*MONO,176+J)
  141. 1590  BOX$(1,J)=CHR$(176+J)+STRING$(13-4*MONO,32)+CHR$(176+J)
  142. 1600  BOX$(2,J)=STRING$(15-4*MONO,176+J):NEXT
  143. 1610  CLEARR$=STRING$(13-4*MONO,32):COLOR FG,BG
  144. 1620  RETURN
  145. 1640  COMMON ANSR$(),ARRAY$(),QUIZ(),WANSR(),SH(),BOX$(),S$(),MAN$(),HEAD$(),DD,      BUG$(),FG,BG,MONO,NAMEE$,SOUNDD
  146. 1650  DIM MAN$(3),HEAD$(1),BUG$(5),SH(3,3,1),BOX$(2,2),S$(5):I=0:SH=0:SHT=0:SHTT=     0:LK=0:LKK=0:RK=0:RKK=0:ESCKEY=0:TIME=0:TIMER=0:BUGTIME=0:BUGTIMER=0:ZZ=0:      LEVEL=0:BUGCOUNT=0:J=0:P=0:BUG=0
  147. 1660  DIM ANSR$(3),ARRAY$(203),QUIZ(25),WANSR(25)
  148. 1670  SCREEN 0,0,0,0:KEY OFF:DEF SEG=0:IF (PEEK(&H410) AND &H30)=&H30 THEN MONO =    -1:CLR=0:FG=0:BG=7:WIDTH 80:ELSE MONO=0:CLR=-1:FG=7:BG=0: WIDTH 40:SCREEN ,1
  149. 1680  GOSUB 1570
  150. 1700  SHT=90:SHTT=122:LK=75:LKK=107:RK=76:RKK=108:ESCKEY=27:SPACEBAR=32
  151. 1710  I%=0:DUPE=0:WRD=0:ANSR=0:K=0:ANSR=0:K=0:RANS=0:NU=-1:SEQUENCE=0:VLUE=0:         SPED=0:S$=""
  152. 1720  ACCENT=-CLR*(9+8*(FG=0))-MONO*FG
  153. 1730  GREEN=-CLR*2-MONO*FG
  154. 1740  BRN=-CLR*6-MONO*FG
  155. 1750  RED=-CLR*4-MONO*FG
  156. 1760  BLUE=-CLR*1-MONO*FG
  157. 1770  LITEGREEN=-CLR*(10+8*(FG=0))-MONO*FG
  158. 1790  RESTORE 1810
  159. 1800  FOR I=0 TO 3:FOR J=0 TO 3:READ SH(I,J,0):NEXT:NEXT
  160. 1810  DATA 8,5,1,8
  161. 1820  DATA 16,1,5,12
  162. 1830  DATA 22,1,22,29
  163. 1840  DATA 30,5,26,33
  164. 1860  FOR I=0 TO 3:FOR J=0 TO 3:READ SH(I,J,1):NEXT:NEXT
  165. 1870  DATA 17,5,8,17
  166. 1880  DATA 31,1,20,29
  167. 1890  DATA 46,1,42,51
  168. 1900  DATA 60,5,54,63
  169. 1930  FOR I=0 TO 3:SH(I,1,1)=SH(I,1,1)-(FG=0):NEXT
  170. 1940  S$(1)="*":S$(2)="INSTR":S$(3)="-":S$(4)="PRINT":S$(5)="\"
  171. 1950  MAN$(0)=CHR$(95)+CHR$(47)+CHR$(92)+CHR$(95)
  172. 1960  MAN$(1)=CHR$(218)+CHR$(196)+CHR$(196)+CHR$(191)
  173. 1970  MAN$(2)=CHR$(192)+CHR$(196)+CHR$(196)+CHR$(217)
  174. 1980  MAN$(3)=CHR$(196)+CHR$(217)+CHR$(192)+CHR$(196)
  175. 1990  HEAD$(0)=CHR$(218)+CHR$(94)+CHR$(94)+CHR$(191)
  176. 2000  HEAD$(1)=CHR$(192)+CHR$(248)+CHR$(248)+CHR$(217)
  177. 2010  BUG$(1)="  "+CHR$(247):BUG$(2)="  "+CHR$(127)
  178. 2020  BUG$(3)="  "+CHR$(232):BUG$(4)="  "+CHR$(224)
  179. 2030  BUG$(5)="  "+CHR$(237)
  180. 2040  RETURN
  181. 2060  GOSUB 6460: DISKERROR = 0:COLOR ACCENT
  182. 2070  LOCATE 3:FOR I=0 TO 3:LOCATE ,4-11*MONO:PRINT MAN$(I):NEXT:COLOR FG
  183. 2080  LOCATE 4,11-17*MONO:PRINT "W O R D";STRING$(2-4*MONO,32);"A T T A C K":         COLOR ACCENT
  184. 2090  LOCATE 3:FOR I=0 TO 3:LOCATE ,34-28*MONO:PRINT MAN$(I):NEXT
  185. 2100  LOCATE 6,11-13*MONO:PRINT STRING$(20-12*MONO,205):COLOR FG
  186. 2110  LOCATE 11+N,14-20*MONO:PRINT "Word lists are"
  187. 2120  PRINT:LOCATE ,9-20*MONO:PRINT "available for levels 1-9."
  188. 2130  LOCATE 17+N,10-20*MONO:PRINT "Please select a level":PRINT
  189. 2140  LOCATE ,12-20*MONO:PRINT "by pressing  1-9.":COLOR ACCENT
  190. 2150  LOCATE 24,3-20*MONO:PRINT "Press S to Change the Screen Display";
  191. 2160  IF N THEN LOCATE 22,6-20*MONO:PRINT "Press P to Run Preview program"
  192. 2170  COLOR FG,BG
  193. 2180  A$=INKEY$:IF A$ <> "" THEN 2180
  194. 2190  FOR I=0 TO 200:ARRAY$(I)="":NEXT
  195. 2200  A$=INKEY$:IF A$ = "" THEN 2200
  196. 2210  IF A$="S" OR A$="s" THEN GOSUB 7230:GOTO 2060
  197. 2220  IF A$="P" OR A$="p" THEN GOSUB 7420:GOTO 2060
  198. 2230  IF A$="D" OR A$="d" THEN GOSUB 2310:GOTO 2290
  199. 2240  IF A$="E" OR A$="e" THEN GOSUB 8240:GOTO 2060
  200. 2250  A=VAL(A$):IF A < 1 OR A > 9 THEN 2180
  201. 2260  SUFFIX$=RIGHT$(STR$(A),1)
  202. 2270  IF N THEN GOSUB 6290
  203. 2280  GOSUB 2460: 'FILE MENU
  204. 2290  RETURN
  205. 2310  IF N THEN GOSUB 6290
  206. 2320  ON ERROR GOTO 2420
  207. 2330  IF DD=2 THEN A$="b:*.*" ELSE A$=""
  208. 2340  CLS:IF DD=1 THEN FILES ELSE FILES "B:*.*"
  209. 2350  PRINT:PRINT:INPUT "File to load? ",FILE$
  210. 2360  IF FILE$="" THEN DISKERROR=-1:GOTO 2380
  211. 2370  PRINT:PRINT "Loading file"
  212. 2380  ON ERROR GOTO 0
  213. 2390  TITLE$=FILE$
  214. 2400  RETURN
  215. 2420  PRINT:PRINT:BEEP:PRINT "Disk error":FOR I=1 TO 3000:NEXT
  216. 2430  DISKERROR=-1
  217. 2440  RESUME 2380
  218. 2460  GOSUB 6460:COLOR ACCENT
  219. 2470  LOCATE 3,17-19*MONO:PRINT "Level";A
  220. 2480  I=14-19*MONO:J=7-7*MONO:LOCATE 6,J
  221. 2490  PRINT "At this level, the following ";:IF NOT MONO THEN PRINT:PRINT:LOCATE      ,J
  222. 2500  PRINT "word lists are available:":COLOR FG
  223. 2510  LOCATE 12+MONO,I:PRINT "1.  Adjectives"
  224. 2520  PRINT:LOCATE ,I:PRINT "2.  Nouns"
  225. 2530  PRINT:LOCATE ,I:PRINT "3.  Verbs":COLOR ACCENT
  226. 2540  LOCATE 21+MONO,5-19*MONO:PRINT "Please select word list by number"
  227. 2550  A$=INKEY$:IF A$ <> "" THEN 2550
  228. 2560  A$=INKEY$:IF A$="" THEN 2560
  229. 2570  A=VAL(A$):IF A < 1 OR A > 3 THEN 2560
  230. 2580  IF A=1 THEN B$=" Adjectives":A$="ADJ"
  231. 2590  IF A=2 THEN B$=" Nouns":A$="NOUNS"
  232. 2600  IF A=3 THEN B$=" Verbs":A$="VERBS"
  233. 2610  FILE$=A$+SUFFIX$
  234. 2620  TITLE$="Level "+SUFFIX$+B$
  235. 2630  LOCATE 21+MONO,4-19*MONO:PRINT "                                   "
  236. 2640  LOCATE 21+MONO,12-19*MONO:PRINT "Loading Word List"
  237. 2650  RETURN
  238. 2670  ON ERROR GOTO 2780
  239. 2680  LMAX=0:I=FRE(""):DISKERROR=0:IF DD=2 THEN FILE$="B:"+FILE$
  240. 2690  OPEN FILE$ FOR INPUT AS #1
  241. 2700  WHILE NOT EOF(1)
  242. 2710    INPUT #1, ARRAY$(LMAX)
  243. 2720    LMAX=LMAX+1
  244. 2730  WEND:CLOSE
  245. 2740  LMAX=LMAX-1:SPED=10:HI=2000
  246. 2750  ON ERROR GOTO 0
  247. 2760  RETURN
  248. 2780  RESTORE 2860:ERRNUMBER=0:DISKERROR=-1:GOSUB 6460:COLOR ACCENT
  249. 2790  READ ERRNUMBER, ERRORMESSAGE$: IF ERR <> ERRNUMBER AND ERRNUMBER <> 72          THEN 2790
  250. 2800  LOCATE 8,10-20*MONO:PRINT "Error Loading the File"
  251. 2810  LOCATE 12,12-20*MONO:PRINT "IBM ERROR CODE";ERR
  252. 2820  LOCATE 15,18-20*MONO - LEN(ERRORMESSAGE$)/2
  253. 2830  IF ERR=ERRNUMBER THEN PRINT ERRORMESSAGE$;" error"
  254. 2840  GOSUB 6370
  255. 2850  RESUME 2750
  256. 2860  DATA 24,Device timeout,53,File not found,57,Device input/output,68,             Device unavailable,71,Disk not ready,72,Disk media
  257. 2880  GOSUB 6460:COLOR ACCENT
  258. 2890  LOCATE 3,5-7*MONO:PRINT TITLE$
  259. 2900  I=35-30*MONO:LOCATE 4:A$="WORD  ATTACK"
  260. 2910  FOR J=1 TO LEN(A$):LOCATE ,I:PRINT MID$(A$,J,1):NEXT:COLOR FG
  261. 2920  I=5-7*MONO:LOCATE 7,I:PRINT "1.  Word Display"
  262. 2930  PRINT:LOCATE ,I:PRINT "2.  Multiple Choice Quiz"
  263. 2940  PRINT:LOCATE ,I:PRINT "3.  Sentence Completion"
  264. 2950  PRINT:LOCATE ,I:PRINT "4.  Word Attack!"
  265. 2960  PRINT:LOCATE ,I:PRINT "5.  Load a New Word List"
  266. 2970  PRINT:LOCATE ,I:PRINT "6.  Stop for Now"
  267. 2980  COLOR ACCENT:LOCATE 20-MONO,I:PRINT "Please press a number from ";:IF NOT       MONO THEN PRINT:PRINT:LOCATE ,I
  268. 2990  PRINT "1 to 6 to indicate your choice"
  269. 3000  A$=INKEY$:IF A$ <> "" THEN 3000
  270. 3010  A$=INKEY$:IF A$="" THEN 3010
  271. 3020  CHOICE=VAL(A$):IF CHOICE < 1 OR CHOICE > 6 THEN 3010
  272. 3030  FOR J=19 TO 23:LOCATE J,I:PRINT STRING$(30-32*MONO,32):NEXT
  273. 3040  LOCATE 21,I:IF CHOICE=2 THEN PRINT "Quiz: Normal or Reversed (N/R)"
  274. 3050  IF CHOICE=3 THEN PRINT "One moment please...":J=FRE("")
  275. 3060  IF CHOICE=4 THEN LOCATE ,I-1:PRINT "Use K - L keys to move, Z to shoot":        J=FRE("")
  276. 3070  IF CHOICE<>2 THEN COLOR FG
  277. 3080  RETURN
  278. 3100  GOSUB 6460:COLOR ACCENT
  279. 3110  LOCATE 3,21-LEN(TITLE$)/2-19*MONO:PRINT TITLE$
  280. 3120  A$=INKEY$:IF A$ <> "" THEN 3120
  281. 3130  LOCATE 8,8-19*MONO:PRINT "To change the display time,":COLOR FG
  282. 3140  LOCATE 11,10-19*MONO:PRINT "Press  M  for more time"
  283. 3150  LOCATE 13,10-19*MONO:PRINT "Press  L  for less time"
  284. 3160  COLOR ACCENT
  285. 3170  LOCATE 18,5-19*MONO:PRINT "Display time";SPED;"seconds per word. "
  286. 3180  LOCATE 23,2:PRINT CHR$(199);STRING$(36-40*MONO,196);CHR$(182)
  287. 3190  LOCATE 24,7-19*MONO:PRINT "Space Bar Starts Word Display";
  288. 3200  A$=INKEY$:IF (A$="M" OR A$="m") AND SPED < 30 THEN SPED=SPED+1
  289. 3210  IF (A$="L" OR A$="l") AND SPED > 2 THEN SPED=SPED-1
  290. 3220  IF A$ <> " " THEN 3160
  291. 3230  COLOR FG:GOSUB 3260
  292. 3240  RETURN
  293. 3260  L=0:ESC=0
  294. 3280  WHILE L < LMAX
  295. 3290   CLS:FOR I=1 TO 1100:NEXT
  296. 3300   A$=INKEY$:IF A$ <> "" THEN 3300
  297. 3310   I=21-LEN(ARRAY$(L))/2-19*MONO:IF I < 1 THEN I=1
  298. 3320   LOCATE 2,I:PRINT ARRAY$(L):L=L+1
  299. 3330   FOR I=1 TO 310*SPED:NEXT
  300. 3340   A$=INKEY$:IF A$=CHR$(27) THEN ESC=-1:GOTO 3600
  301. 3360   I=21-LEN(ARRAY$(L))/2-19*MONO:IF I < 1 THEN I=1
  302. 3370   LOCATE 10,I
  303. 3380   PRINT ARRAY$(L):PRINT:L=L+1
  304. 3390   FOR I=1 TO 260*SPED:NEXT
  305. 3400   A$=INKEY$:IF A$=CHR$(27) THEN ESC=-1:GOTO 3600
  306. 3420   FOR I=0 TO 2
  307. 3430    A$=ARRAY$(L+I):I(I)=LEN(A$)
  308. 3440    IF LEFT$(A$,1)="*" THEN ARRAY$(L+I)=NAMEE$+RIGHT$(A$,LEN(A$)-1):GOTO 3480
  309. 3450    FOR J=2 TO I(I)
  310. 3460     IF MID$(A$,J,1)="*" THEN ARRAY$(L+I)=LEFT$(A$,J-1)+NAMEE$:IF J < I(I)           THEN ARRAY$(L+I)=ARRAY$(L+I)+RIGHT$(A$,I(I)-J)
  311. 3470    NEXT J
  312. 3480   NEXT I
  313. 3490   FOR I=0 TO 2:I(I)=LEN(ARRAY$(L+I)):NEXT I
  314. 3500   M=I(0):IF I(1) > I(0) THEN M = I(1)
  315. 3510   IF I(2) > I(1) AND I(2) > I(0) THEN M=I(2)
  316. 3520   M=21-M/2-20*MONO:IF M < 1 THEN M=1
  317. 3530   LOCATE 17,M:PRINT ARRAY$(L):PRINT:L=L+1
  318. 3540   LOCATE ,M:PRINT ARRAY$(L):PRINT:L=L+1
  319. 3550   LOCATE ,M: PRINT ARRAY$(L):IF LEN(ARRAY$(L))> 2 THEN FOR I=1 TO 1500:NEXT
  320. 3560   L=L+4
  321. 3570   FOR I=1 TO 535*SPED:NEXT
  322. 3580   A$=INKEY$:IF A$=CHR$(27) THEN ESC=-1:GOTO 3600
  323. 3590  WEND
  324. 3600  RETURN
  325. 3620  A$=INKEY$:IF A$ <> "" THEN 3620
  326. 3630  A$=INKEY$
  327. 3640  IF A$ <> "N" AND A$ <> "n" AND A$ <> "R" AND A$ <> "r" THEN 3630
  328. 3650  I=5-7*MONO
  329. 3660  LOCATE 21,I:PRINT STRING$(30,32):LOCATE 21,I:PRINT "One moment please..."
  330. 3670  J=FRE("")
  331. 3680  IF A$="N" OR A$="n" THEN COLUMN=-1 ELSE COLUMN=0
  332. 3690  GOSUB 4100
  333. 3710  WD=0:ESC=0:TTAL=0:RIGHT=0:TIME=0:RTEANSR=0:WANSR=0
  334. 3720  WD$=ARRAY$(QUIZ(WD)*8-NOT COLUMN)
  335. 3730  CLS:FOR I=1 TO 1000:NEXT
  336. 3740  I=20-(LEN(WD$)/2)-20*MONO:IF I < 2 THEN I=2
  337. 3750  COLOR FG:LOCATE 2,I:PRINT WD$:IF CLR THEN COLOR 1
  338. 3760  LOCATE ,3-4*MONO:PRINT STRING$(36-31*MONO,196):COLOR FG
  339. 3770  GOSUB 4170
  340. 3790  LOCATE 6
  341. 3800  FOR I=0 TO 3:LOCATE ,2-4*MONO:PRINT I+1;:LOCATE ,POS(0)-1:PRINT ". ";ANSR$     (I):PRINT:PRINT:NEXT I
  342. 3810  GOSUB 4310
  343. 3820  IF NOT (ESC AND FIRSTTIME) THEN TTAL=TTAL+1
  344. 3830  IF RTEANSR AND FIRSTTIME THEN RIGHT=RIGHT+1
  345. 3840  IF ESC THEN 3870
  346. 3850  IF (NOT REPETE AND WD < WRDS -1) OR (REPETE AND WD < WNSR-1) THEN WD=WD+1:      GOTO 3720
  347. 3870  GOSUB 5800
  348. 3880  GOSUB 3920
  349. 3890  IF REPETE THEN 3710
  350. 3900  RETURN
  351. 3920  IF WANSR=0 THEN REPETE=0:GOTO 4080
  352. 3930  GOSUB 6460:J=5-3*MONO:LOCATE 3,J-1:L=J-1:COLOR ACCENT
  353. 3940  IF WANSR > 1 THEN PRINT "You missed ";: IF MONO THEN PRINT                     "(or needed help with) these words:" ELSE PRINT "these words."
  354. 3950  IF WANSR=1 THEN PRINT "You missed ";: IF MONO THEN PRINT                       "(or needed help with) this word:" ELSE PRINT "this word:"
  355. 3960  LOCATE 6:I=0:COLOR FG
  356. 3970  LOCATE ,J:PRINT ARRAY$(WANSR(I)*8)
  357. 3980  IF WANSR < 17 THEN PRINT
  358. 3990  IF (WANSR < 17 AND I=8) OR (WANSR > 16 AND I=12) THEN J=22-25*MONO:LOCATE 6     ,J
  359. 4000  IF I < WANSR-1 THEN I=I+1:GOTO 3970
  360. 4010  COLOR ACCENT
  361. 4020  LOCATE 24,L:IF WANSR > 1 THEN PRINT "Do you want to retake these words? ";:     IF MONO THEN PRINT "(Y/N)";
  362. 4022  IF WANSR < 2 THEN PRINT "Do you want to retake this word? ";: IF MONO THEN      PRINT "(Y/N)";
  363. 4030  A$=INKEY$:IF A$ <> "" THEN 4030
  364. 4040  A$=INKEY$: IF A$ <> "Y" AND A$<> "y" AND A$<> "N" AND A$<> "n" THEN 4040
  365. 4050  IF A$="N" OR A$="n" THEN REPETE=0 ELSE REPETE=-1
  366. 4060  FOR I=0 TO WANSR-1:QUIZ(I)=WANSR(I):NEXT
  367. 4070  WNSR=WANSR:COLOR FG
  368. 4080  RETURN
  369. 4100  WRDS=(LMAX+1)/8
  370. 4110  FOR I=0 TO WRDS-1:QUIZ(I)=26:NEXT
  371. 4120  FOR I=0 TO WRDS-1
  372. 4130    J%=RND(1)*WRDS:IF QUIZ(J%) <> 26 THEN 4130 ELSE QUIZ(J%)=I
  373. 4140  NEXT I
  374. 4150  RETURN
  375. 4170  FOR I=0 TO 3:ANSR$(I) = "":NEXT
  376. 4180  FOR ANSR=0 TO 3
  377. 4190    I%=RND(1)*WRDS:DUPE=0
  378. 4200    FOR I=0 TO ANSR:IF ANSR$(I)=ARRAY$(QUIZ(I%)*8-COLUMN) THEN DUPE=-1
  379. 4210    NEXT:IF DUPE THEN 4190 ELSE ANSR$(ANSR)=ARRAY$(QUIZ(I%)*8-COLUMN)
  380. 4220  NEXT
  381. 4240  K=0
  382. 4250  FOR I=0 TO 3
  383. 4260    IF ANSR$(I)=ARRAY$(QUIZ(WD)*8-COLUMN) THEN K=-1:RANS=I+1
  384. 4270  NEXT
  385. 4280  IF NOT K THEN I%=RND(1)*4:IF I% => 4 THEN 4280 ELSE ANSR$(I%)=ARRAY$(QUIZ      (WD)*8-COLUMN):RANS=I%+1
  386. 4290  RETURN
  387. 4310  FIRSTTIME=-1:RTEANSR=0
  388. 4320  A$=INKEY$:IF A$ <> "" THEN 4320
  389. 4330  LOCATE 18,3-4*MONO
  390. 4340  PRINT "Answer? _";:LOCATE ,23-35*MONO:PRINT "Elapsed time";TIME
  391. 4350  GOSUB 4590
  392. 4360  LOCATE 18,23-35*MONO:COLOR FG:PRINT "Elapsed time";TIME;
  393. 4370    FOR J=1 TO 570:NEXT
  394. 4380    A$=INKEY$:IF A$ <> "" THEN I=ASC(A$):IF I > 90 THEN I=I-32
  395. 4390    IF (I > 48 AND I < 53) OR I=27 THEN 4420 ELSE FOR J=1 TO 570:NEXT
  396. 4400    A$=INKEY$:IF A$ <> "" THEN I=ASC(A$):IF I > 90 THEN I=I-32
  397. 4410  IF (I < 49 OR I > 52) AND I <> 27 THEN TIME=TIME+1:GOTO 4360
  398. 4420  IF I=27 THEN 4560: 'ESCAPE
  399. 4430  ANSR=VAL(CHR$(I))
  400. 4440  IF NOT FIRSTTIME OR ANSR=RANS THEN LOCATE ,10-4*MONO:PRINT ANSR:PRINT
  401. 4450  IF ANSR=RANS THEN GOSUB 4670:GOTO 4540
  402. 4470  LOCATE 23+MONO,15-20*MONO
  403. 4480  IF FIRSTTIME THEN PRINT "Try again.":FIRSTTIME=0:WANSR(WANSR)=QUIZ(WD):         WANSR=WANSR+1:A$="":I=0:GOTO 4320
  404. 4490  LOCATE 22+MONO,9-20*MONO:PRINT "The correct answer is";RANS;:LOCATE ,POS(0)     -1:PRINT "."
  405. 4500  LOCATE ,15-20*MONO:PRINT "           "
  406. 4510  RTEANSR=0
  407. 4520  COLOR FG:LOCATE 24+MONO,7-20*MONO:PRINT "Press space bar to continue";
  408. 4540  A$=INKEY$
  409. 4550  IF NOT RTEANSR AND (A$ <> " " AND A$ <> CHR$(27)) THEN 4540
  410. 4560  IF A$=CHR$(27) THEN ESC=-1
  411. 4570  RETURN
  412. 4590  COLOR BLUE
  413. 4600  LOCATE 21+MONO,2-4*MONO:PRINT CHR$(218)+STRING$(36-31*MONO,196);CHR$(191)
  414. 4610  LOCATE ,2-4*MONO:PRINT CHR$(179);:LOCATE ,39-35*MONO:PRINT CHR$(179)
  415. 4620  LOCATE ,2-4*MONO:PRINT CHR$(179);:LOCATE ,39-35*MONO:PRINT CHR$(179)
  416. 4630  LOCATE ,2-4*MONO:PRINT CHR$(179);:LOCATE ,39-35*MONO:PRINT CHR$(179);
  417. 4640  LOCATE 25+MONO,2-4*MONO:PRINT CHR$(192);STRING$(36-31*MONO,196);CHR$(217);
  418. 4650  RETURN
  419. 4670  RTEANSR=-1:I%=RND(1)*4+1:IF I%=OLDI% THEN 4670
  420. 4680  IF I%=1 THEN A$="That's right!"
  421. 4690  IF I%=2 THEN A$="Very good, "+NAMEE$+"."
  422. 4700  IF I%=3 THEN A$="Congratulations, "+NAMEE$+"!"
  423. 4710  IF I%=4 THEN A$="Way to go, "+NAMEE$+"!"
  424. 4720  IF I%=5 THEN A$="Keep it up, "+NAMEE$+"!"
  425. 4730  COLOR FG:I=20-LEN(A$)/2-20*MONO:IF I < 2 THEN I=2
  426. 4740  LOCATE 23+MONO,I:PRINT A$:IF NOT SOUNDD THEN FOR I=1 TO 2500:NEXT
  427. 4750  WHILE SOUNDD
  428. 4760    SNG%=RND(1)*6+1:IF SNG%=OSNG% OR (BDAY AND SNG%=7) THEN 4760
  429. 4770    IF OSNG% > 6 THEN SNG%=OSNG%+1
  430. 4780    OSNG%=SNG%
  431. 4790    IF SNG%=1 THEN RESTORE 4960
  432. 4800    IF SNG%=2 THEN RESTORE 4990
  433. 4810    IF SNG%=3 THEN RESTORE 5010
  434. 4820    IF SNG%=4 THEN RESTORE 5110
  435. 4830    IF SNG%=5 THEN RESTORE 5130
  436. 4840    IF SNG%=6 THEN RESTORE 5150
  437. 4850    IF SNG%=7 THEN RESTORE 5030
  438. 4860    IF SNG%=8 THEN RESTORE 5050
  439. 4870    IF SNG%=9 THEN RESTORE 5070
  440. 4880    IF SNG%=10 THEN RESTORE 5090:BDAY=-1:OSNG%=1
  441. 4890    READ ACCENTT
  442. 4900    READ I,J:IF J=0 THEN 4940 ELSE IF I=0 THEN I=30000
  443. 4910    SOUND I,J:IF ACCENTT THEN SOUND 30000,1
  444. 4920    GOTO 4900
  445. 4930  WEND
  446. 4940  RETURN
  447. 4960  DATA -1,349,2,349,1,349,1,0,1,349,1,349,1,349,1,0,1,349,1,349,1,466,1,0,1,      532,1,0,1,587,1,0,1
  448. 4970  DATA 349,1,349,1,349,1,0,1,349,1,349,1,349,1,0,1,587,1,587,1,523,1,0,1,         439,1,0,1,349,2,0,0
  449. 4990  DATA -1,349,2,466,2,587,2,698,3,0,1,587,3,698,6,0,0
  450. 5010  DATA -1,349,12,0,1,262,2,349,3,0,1,262,2,349,3,0,1,392,2,440,13,0,2,            349,13,0,0
  451. 5030  DATA -1,554,4,554,2,622,6,554,6,740,6,698,10,0,0
  452. 5050  DATA -1,554,4,554,2,622,6,554,6,831,6,740,10,0,0
  453. 5070  DATA -1,554,4,554,2,1109,6,932,6,740,6,698,6,622,10,0,0
  454. 5090  DATA -1,988,4,988,2,932,6,740,6,831,6,740,10,0,0
  455. 5110  DATA 0,277,2,294,1,311,1,330,1,392,1,415,1,440,1,466,1,494,1,532,1,554,1,       587,1,622,1,659,1,698,1,740,1,783,1,831,1,880,1,932,1,987,1,1047,1,1109,1,      0,0
  456. 5130  DATA 0,415,2,378,2,415,14,0,10,370,2,330,2,311,2,277,2,262,11,277,13,0,0
  457. 5150  DATA -1,415,2,415,2,415,2,330,15,0,5,370,2,370,2,370,2,311,15,0,0
  458. 5170  GOSUB 4100
  459. 5180  WD=0:COLUMN=0:TTAL=0:RIGHT=0:ESC=0:TIME=0:WANSR=0
  460. 5190  RTEANSR=0:CHANCES=0
  461. 5200  GOSUB 4170
  462. 5210  X=0:CLS
  463. 5220  A$=ARRAY$(QUIZ(WD)*8+5+X)
  464. 5230  J=1:K=LEN(A$):L=0
  465. 5240  IF K=0 THEN GOSUB 6460:LOCATE 10,7-20*MONO:PRINT "Sentence completion entries":PRINT:LOCATE ,8-20*MONO:PRINT "are either not present or":PRINT:LOCATE,9-20*MONO:PRINT "not properly formatted.":LOCATE 23,2-20*MONO:GOSUB 6400:GOTO 5580
  466. 5250  B$=MID$(A$,J,1):IF ASC(B$) > 27 THEN L=L+1
  467. 5260  IF B$ <> "_" AND J < K THEN J=J+1:GOTO 5250
  468. 5270  IF B$ <> "_" THEN X=X+1:GOTO 5220
  469. 5290  A$=ARRAY$(QUIZ(WD)*8+1):L=L+1
  470. 5300  K=20-LEN(A$)/2:IF K < 2 THEN K=2
  471. 5310  LOCATE 2,K-19*MONO:PRINT A$:IF CLR THEN COLOR 1
  472. 5320  LOCATE ,2-4*MONO:PRINT STRING$(37-31*MONO,196):COLOR FG
  473. 5330  FOR I=5 TO 7:LOCATE 10+2*(I-5),2-22*MONO:PRINT ARRAY$(QUIZ(WD)*8+I):PRINT:      NEXT I
  474. 5340  GOSUB 4590
  475. 5350  COLOR FG:LOCATE 22+MONO,9-19*MONO:PRINT "Type in the missing word"
  476. 5360  LOCATE 24+MONO,9-19*MONO:PRINT "H = help      ESC = quit";
  477. 5370  LOCATE 10+2*X,L-22*MONO:COLOR 16+FG:PRINT "_";: COLOR FG:LOCATE ,POS(0)-1
  478. 5380  A$ = "":AN$=ARRAY$(QUIZ(WD)*8+X+5):AN=L-22*MONO:RIGHTANSR$=ARRAY$(QUIZ(WD)     *8)
  479. 5390  P$=INKEY$:IF P$ <> "" THEN 5390
  480. 5400  P$=INKEY$:IF P$="" THEN 5400 ELSE IF P$ <> CHR$(13) THEN IF ASC(P$) >64 AND     ASC(P$) < 97 THEN P$=CHR$(ASC(P$)+32)
  481. 5410    IF P$=CHR$(27) THEN 5550
  482. 5420    IF P$=CHR$(13) THEN 5460
  483. 5430    IF P$=CHR$(8) THEN GOSUB 5600:GOTO 5400
  484. 5440    IF ASC(P$) > 96 AND ASC(P$) < 123 AND LEN(A$) < LEN(RIGHTANSR$) THEN A$=        A$+P$:PRINT P$;:IF LEN(A$) < LEN(RIGHTANSR$) THEN COLOR 16+FG:PRINT "_";:       COLOR FG:LOCATE ,POS(0)-1 ELSE LOCATE ,POS(0)-1
  485. 5450  GOTO 5400
  486. 5460  IF A$="" THEN 5370
  487. 5470  IF LEN(A$) < LEN(RIGHTANSR$) THEN PRINT "_";
  488. 5480  CHANCES=CHANCES+1
  489. 5490  IF CHANCES=1 THEN TTAL=TTAL+1
  490. 5500  IF A$="h" THEN GOSUB 5900:GOTO 5370
  491. 5510  GOSUB 5670
  492. 5520  IF RTEANSR AND CHANCES=1 THEN RIGHT=RIGHT+1
  493. 5530  IF NOT RTEANSR AND CHANCES < 3 THEN FOR I=1 TO 2000:NEXT:GOTO 5330
  494. 5540  IF (NOT REPETE AND WD < WRDS-1) OR (REPETE AND WD < WNSR-1) THEN WD=WD+1:       GOTO 5190
  495. 5550  GOSUB 5800
  496. 5560  GOSUB 3920
  497. 5570  IF REPETE THEN 5180
  498. 5580  RETURN
  499. 5600  IF LEN(A$) < 2 THEN A$="" ELSE A$=LEFT$(A$,LEN(A$)-1)
  500. 5610  LOCATE ,AN:PRINT A$;:COLOR FG+16:PRINT "_";: COLOR FG:IF LEN(A$) < LEN          (RIGHTANSR$)-1 THEN PRINT "_";:LOCATE ,POS(0)-2 ELSE LOCATE ,POS(0)-1
  501. 5620  GOTO 5640
  502. 5630  IF LEN(A$)=> LEN(RIGHTANSR$)-1 THEN PRINT " ": LOCATE 10 + 2 * X,1-22*MONO:     PRINT AN$;:LOCATE ,AN:PRINT A$;:COLOR 16+FG:PRINT "_";:COLOR FG:LOCATE,POS     (0)-1
  503. 5640  RETURN
  504. 5670  FOR I=1 TO LEN(A$)
  505. 5680    J=ASC(MID$(A$,I,1))
  506. 5690    IF J > 64 AND J < 91 THEN MID$(A$,I,1)=CHR$(J+32)
  507. 5700  NEXT I
  508. 5720  IF A$=RIGHTANSR$ THEN LOCATE 18,1:PRINT STRING$(40,32):FOR I=22 TO 24 STEP      2:LOCATE I+MONO,8-20*MONO:PRINT STRING$(25,32);:NEXT:GOSUB 4670:GOTO 5780
  509. 5740  IF CHANCES=1 THEN WANSR(WANSR)=QUIZ(WD):WANSR=WANSR+1
  510. 5750  RTEANSR=0
  511. 5760  LOCATE 18,2-6*MONO:PRINT "            ":FOR J=1 TO 100:NEXT
  512. 5770  LOCATE 18,2-6*MONO: IF CHANCES > 2 THEN B$ = STRING$(24,32): PRINT             "The missing word is ";RIGHTANSR$;".":FOR I=22 TO 24:LOCATE I+MONO,9-19*MONO    :PRINT B$;:NEXT:LOCATE 23+MONO,3-19*MONO:COLOR FG:GOSUB 6410 ELSE PRINT "Try again."
  513. 5780  RETURN
  514. 5800  IF TTAL=0 THEN 5880
  515. 5810  GOSUB 6460:I=7-9*MONO
  516. 5820  COLOR ACCENT:LOCATE 4,16-19*MONO:PRINT "Scoreboard":COLOR FG
  517. 5830  LOCATE 8,I:IF CHOICE=2 THEN PRINT "Elapsed time:";TIME
  518. 5840  PRINT:LOCATE ,I:PRINT "Total questions: ";TTAL
  519. 5850  PRINT:LOCATE ,I:PRINT "Number correct:  ";RIGHT
  520. 5860  PRINT:J%=RIGHT/TTAL*100:LOCATE ,I:PRINT "Percentage correct: ";J%;"%"
  521. 5870  LOCATE 22,2:GOSUB 6370
  522. 5880  RETURN
  523. 5900  LOCATE 4,8-16*MONO:PRINT ANSR$(0)
  524. 5910  LOCATE 4,26-23*MONO:PRINT ANSR$(1)
  525. 5920  LOCATE 6,8-16*MONO:PRINT ANSR$(2)
  526. 5930  LOCATE 6,26-23*MONO:PRINT ANSR$(3)
  527. 5940  LOCATE 10+2*X,L-23*MONO:PRINT CHR$(95)
  528. 5950  IF CHANCES=1 THEN WANSR(WANSR)=QUIZ(WD):WANSR=WANSR+1
  529. 5960  RETURN
  530. 5980  GOSUB 6460:COLOR ACCENT
  531. 5990  LOCATE 3-MONO,4-5*MONO:PRINT "Welcome to Word Attack!"
  532. 6000  COLOR FG:I=5-4*MONO
  533. 6010  LOCATE 7-MONO,I:PRINT "Please type your first name then ";:IF NOT MONO THEN     PRINT:PRINT:LOCATE ,I
  534. 6020  INPUT "press the ENTER key ",NAMEE$
  535. 6030  IF NAMEE$="" THEN 6010
  536. 6040  IF LEN(NAMEE$) > 13 THEN INVALID=-1: GOTO 6070 ELSE INVALID=0
  537. 6050  K=ASC(MID$(NAMEE$,1)):IF K > 97 THEN K=K-32
  538. 6060  IF K < 65 OR K > 90 THEN INVALID=-1 ELSE INVALID=0
  539. 6070  IF INVALID THEN LOCATE 10+MONO,28-33*MONO:PRINT STRING$(11-7*MONO,32)
  540. 6080  IF INVALID THEN 6010
  541. 6090  MID$(NAMEE$,1,1)=CHR$(K)
  542. 6100  L=LEN(NAMEE$)
  543. 6110  FOR P=2 TO L
  544. 6120    N=ASC(MID$(NAMEE$,P,1))
  545. 6130    IF N < 91 AND N > 64 THEN N=N+32
  546. 6140    MID$(NAMEE$,P,1)=CHR$(N)
  547. 6150  NEXT P
  548. 6160  LOCATE 13,I:PRINT NAMEE$;", do you want to ";:IF NOT MONO THEN PRINT:PRINT:     LOCATE ,I
  549. 6170  PRINT "use sound effects? (Y/N)"
  550. 6180  A$=INKEY$:IF A$ <> "" THEN 6180
  551. 6190  A$=INKEY$:IF A$<> "Y" AND A$<> "y" AND A$<> "N" AND A$<> "n" THEN 6190
  552. 6200  IF A$="Y" OR A$="y" THEN SOUNDD=-1 ELSE SOUNDD=0
  553. 6210  LOCATE 19,I:PRINT "Do you have one disk drive ";:IF NOT MONO THEN PRINT:PRINT:LOCATE ,I
  554. 6220  PRINT "or two? (press 1 or 2)"
  555. 6230  A$=INKEY$:IF A$<>"" THEN 6230
  556. 6240  A$=INKEY$:IF A$ = "" OR (A$ <> "1" AND A$ <> "2") THEN 6240
  557. 6250  DD=VAL(A$)
  558. 6260  N=-1:COLOR FG
  559. 6270  RETURN
  560. 6290  GOSUB 6460:COLOR FG
  561. 6300  IF DD=2 THEN LOCATE 6,18-20*MONO:PRINT "Please"
  562. 6310  IF DD=1 THEN LOCATE 8,4-20*MONO:PRINT "Please remove the program diskette"
  563. 6320  LOCATE 14+4*(DD=2),9-20*MONO:PRINT "Insert the data diskette":IF DD=2 THEN LOCATE 14,12-20*MONO:PRINT "into disk drive B"
  564. 6330  GOSUB 6370
  565. 6340  N=0
  566. 6350  RETURN
  567. 6370  COLOR ACCENT
  568. 6380  LOCATE 23,2:PRINT CHR$(199);STRING$(36-40*MONO,196);CHR$(182)
  569. 6390  LOCATE 24,3-19*MONO
  570. 6400  COLOR ACCENT
  571. 6410  PRINT "     Press space bar to continue  ";:COLOR FG
  572. 6420  A$=INKEY$:IF A$ <> "" THEN 6420
  573. 6430  A$=INKEY$:IF A$ <> " " THEN 6430
  574. 6440  RETURN
  575. 6460  COLOR FG,BG:CLS:COLOR ACCENT:FOR I=1 TO 500:NEXT:LOCATE 1,1,0:L=2:R=39-40*      MONO:A$=STRING$(36-40*MONO,205)
  576. 6470  LOCATE 1,L:PRINT CHR$(201);A$;CHR$(187):FOR I=2 TO 24:LOCATE I,L:PRINT CHR$    (186);:LOCATE ,R:PRINT CHR$(186);:NEXT:LOCATE 25,L:PRINT CHR$(200);A$;CHR$      (188);:COLOR FG
  577. 6480  RETURN
  578. 6500  GOSUB 6460:COLOR RED:FOR I=5-10*MONO TO 22-25*MONO STEP 17-15*MONO
  579. 6510  LOCATE 4,I:PRINT BOX$(0,1):LOCATE ,I:PRINT BOX$(1,1):FOR J=1 TO 2:LOCATE ,      I:PRINT BOX$(1,1):NEXT:LOCATE ,I:PRINT BOX$(2,1):NEXT
  580. 6520  COLOR ACCENT:LOCATE 6,10-12*MONO:PRINT "WORD"
  581. 6530  LOCATE 6,26-27*MONO:PRINT "ATTACK!"
  582. 6540  LOCATE 17,20-20*MONO:PRINT "By"
  583. 6550  LOCATE 19,11-20*MONO:PRINT "Richard  Eckert  and"
  584. 6560  LOCATE 21,10-20*MONO:PRINT "Janice  Davidson,  Ph.D."
  585. 6570  LOCATE 24,3-20*MONO:PRINT "Copyright 1983 Davidson & Associates";
  586. 6580  OLDH=4:V=13
  587. 6590  RESTORE 1320:FOR I=1 TO 7:READ J:READ K:SOUND J,K:NEXT
  588. 6600  DATA 523,6,659,2,783,5,523,2,659,2,783,2,523,5
  589. 6610  FOR I=1 TO 800:NEXT
  590. 6630  FOR NEWH=7-12*MONO TO 27-30*MONO STEP 5-4*MONO:GOSUB 6980:FOR I=1 TO 300:       NEXT:NEXT:FOR I=1 TO 800:NEXT
  591. 6650  FOR NEWH=21-28*MONO TO 9-13*MONO STEP-(6-3*MONO):GOSUB 6980:FOR I=1 TO 200:     NEXT:NEXT:FOR I=1 TO 200:NEXT
  592. 6660  H=9-13*MONO:FOR I=50 TO 400 STEP 100:SOUND I,1:NEXT
  593. 6670  COLOR FG:LOCATE V+1,H:PRINT HEAD$(0):LOCATE ,H:PRINT HEAD$(1):SOUND 500,1
  594. 6680  FOR I=V-1 TO 6 STEP-1:LOCATE I,H:PRINT MAN$(0):LOCATE ,H:PRINT "    ":NEXT
  595. 6690  COLOR RED:LOCATE 8,H:PRINT STRING$(4,177)
  596. 6700  COLOR BG,FG:LOCATE 5:FOR I=1 TO 3:LOCATE ,6-10*MONO:PRINT STRING$               (13-4*MONO,32):NEXT:LOCATE 6,H-NOT MONO:PRINT "WORD":COLOR FG,BG
  597. 6710  FOR I=1 TO 15:SOUND 850,1:SOUND 880,1:NEXT:FOR I=1 TO 400:NEXT
  598. 6730  FOR K=1 TO 3
  599. 6740    SOUND 1150,1:SOUND 1280,1:FOR I=13 TO 12 STEP-1:LOCATE I,H:PRINT HEAD$(0)      :LOCATE ,H:PRINT HEAD$(1):LOCATE ,H:PRINT MAN$ (3):LOCATE ,H:PRINT "    ":       NEXT
  600. 6750    FOR I=11 TO 13:LOCATE I,H:PRINT "    ":LOCATE ,H:PRINT HEAD$(0):LOCATE ,        H:PRINT HEAD$(1):LOCATE ,H:PRINT MAN$(3):NEXT
  601. 6760  NEXT:FOR I=1 TO 300:NEXT
  602. 6780  FOR NEWH=15-13*MONO TO 27-31*MONO STEP 6-3*MONO:GOSUB 6980:FOR I=1 TO 100:      NEXT:NEXT
  603. 6800  FOR I=1 TO 300:NEXT:FOR I=50 TO 400 STEP 100:SOUND I,1:NEXT
  604. 6810  H=27-28*MONO:LOCATE V+1,H:PRINT HEAD$(0):LOCATE ,H:PRINT HEAD$(1)
  605. 6820  SOUND 500,1
  606. 6830  FOR I=V-1 TO 6 STEP-1:LOCATE I,H:PRINT MAN$(0):LOCATE ,H:PRINT "    ":NEXT
  607. 6840  COLOR RED:LOCATE 8,H:PRINT STRING$(4,177)
  608. 6850  COLOR BG,FG:LOCATE 5:FOR I=1 TO 3:LOCATE,23-25*MONO:PRINT STRING$              (13-4*MONO,32):NEXT:LOCATE 6,26-27*MONO:PRINT "ATTACK!":COLOR FG,BG
  609. 6860  FOR I=1 TO 15:SOUND 950,1:SOUND 1000,1:NEXT:FOR I=1 TO 300:NEXT
  610. 6880  FOR I=1 TO 100:NEXT
  611. 6890  FOR K=1 TO 5
  612. 6900    SOUND 1200,1:SOUND 1350,1:FOR I = 13 TO 12 STEP -1:LOCATE I,H:PRINT HEAD$       (0):LOCATE ,H:PRINT HEAD$(1):LOCATE ,H:PRINT MAN$(3):LOCATE ,H:PRINT            "    ":NEXT
  613. 6910    FOR I=11 TO 13:LOCATE I,H:PRINT "    ":LOCATE ,H:PRINT HEAD$(0):LOCATE ,H       :PRINT HEAD$(1):LOCATE ,H:PRINT MAN$(3):NEXT
  614. 6920  NEXT:FOR I=1 TO 100:NEXT
  615. 6930  FOR NEWH=H-(4-5*MONO) TO 3-7*MONO STEP-(4-5*MONO):GOSUB 6980:NEXT
  616. 6940  LOCATE 13:FOR I=1 TO 4:LOCATE ,3-7*MONO:PRINT "    ":NEXT
  617. 6950  FOR I=1 TO 1000:NEXT
  618. 6960  RETURN
  619. 6980  SOUND 1000,1:SOUND 523,1:LOCATE V:FOR I=0 TO 3:LOCATE ,OLDH:PRINT "    ":       NEXT:COLOR BRN:LOCATE V:FOR I=0 TO 3:LOCATE ,NEWH:PRINT MAN$(I):NEXT:OLDH=      NEWH:COLOR FG
  620. 6990  RETURN
  621. 7010  GOSUB 6460:LOCATE 3-MONO,4-3*MONO
  622. 7020  PRINT "Other programs by the authors..."
  623. 7030  LOCATE 7-3*MONO,4-3*MONO
  624. 7040  PRINT "Math Blaster -  Learn math facts ";
  625. 7050  IF NOT MONO THEN PRINT:PRINT:LOCATE ,4
  626. 7060  PRINT "with an action-filled arcade game."
  627. 7070  FOR I=1 TO 4000:NEXT:IF MONO THEN PRINT
  628. 7080  PRINT:PRINT:LOCATE ,4-3*MONO
  629. 7090  PRINT "The Speed Reader -";:PRINT SPC(-MONO) "   Build your ";
  630. 7100  IF NOT MONO THEN PRINT:PRINT:LOCATE ,4
  631. 7110  PRINT "reading speed and comprehension."
  632. 7120  FOR I=1 TO 4000:NEXT:IF MONO THEN PRINT
  633. 7130  PRINT:PRINT:LOCATE ,4-3*MONO
  634. 7140  PRINT "Spanish for the Traveler -";:PRINT SPC(-MONO) " Learn ";
  635. 7150  IF NOT MONO THEN PRINT:PRINT:LOCATE ,4
  636. 7160  PRINT "the language and make your trip"
  637. 7170  PRINT:LOCATE ,4-3*MONO
  638. 7180  PRINT "more enjoyable."
  639. 7190  FOR I=1 TO 9000:NEXT
  640. 7200  COLOR 7,0:CLS
  641. 7210  RETURN
  642. 7230  GOSUB 6460:I=5-15*MONO
  643. 7240  LOCATE 5,I-1:PRINT "Which monitor do you have?"
  644. 7250  LOCATE 7,I:PRINT "1> IBM Monochrome Display":PRINT
  645. 7260  LOCATE ,I:PRINT "2> TV  or  other  monitor":PRINT
  646. 7270  LOCATE ,I:PRINT "Please press 1 or 2";
  647. 7280  IF INKEY$ <> "" THEN 7280
  648. 7290  A$=INKEY$:IF A$ <> "1" AND A$ <> "2" THEN 7290
  649. 7300  IF A$="2" THEN W=40:MONO=0:CLR=-1 ELSE W=80:MONO=-1:CLR=0
  650. 7310  LOCATE 15,I-1:PRINT "Select the display color:"
  651. 7320  LOCATE 17,I:PRINT "1> Dark printing/light background":PRINT
  652. 7330  LOCATE ,I:PRINT "2> Light printing/dark background":PRINT
  653. 7340  IF INKEY$ <> "" THEN 7340
  654. 7350  LOCATE ,I:PRINT "Please press 1 or 2"
  655. 7360  A$=INKEY$:IF A$ <> "1" AND A$ <> "2" THEN 7360
  656. 7370  IF A$="1" THEN FG=0:BG=7 ELSE FG=7:BG=0
  657. 7380  COLOR FG,BG:CLS:WIDTH W:GOSUB 1680:IF CLR THEN SCREEN ,1 ELSE SCREEN ,0
  658. 7390  COLOR FG,BG
  659. 7400  RETURN
  660. 7420  A$="":CLS:FOR I=1 TO 1000:NEXT:GOSUB 6460:LOCATE 6,14-20*MONO
  661. 7430  PRINT "Word Attack!":FOR I=1 TO 3000:NEXT:H=6-20*MONO
  662. 7440  LOCATE 10,H:PRINT "is a vocabulary program which"
  663. 7450  PRINT:LOCATE ,H:PRINT "includes a fast-action arcade":PRINT:LOCATE ,H
  664. 7460  PRINT "game.   Learning new words is ":PRINT:LOCATE ,H
  665. 7470  PRINT "fun with Word Attack!":FOR I=1 TO 8000:NEXT
  666. 7480  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7480
  667. 7490  FOR I=10 TO 16 STEP 2:LOCATE I,H:PRINT STRING$(33,32):NEXT
  668. 7500  FOR I=1 TO 3000:NEXT:H=5-20*MONO
  669. 7510  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7510
  670. 7520  LOCATE 10,H+3:PRINT "was designed by teachers ":PRINT:LOCATE ,H
  671. 7530  PRINT "and tested at the educational":PRINT:LOCATE ,H+1
  672. 7540  PRINT "facility of Upward Bound in":PRINT:LOCATE ,H+2
  673. 7550  PRINT "Palos Verdes, California.":FOR I=1 TO 8000:NEXT
  674. 7560  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7560
  675. 7570  FOR I=10 TO 16 STEP 2:LOCATE I,H:PRINT STRING$(33,32):NEXT
  676. 7580  FOR I=1 TO 2000:NEXT:LOCATE 10,H
  677. 7590  PRINT "includes twenty-seven carefully ":PRINT:LOCATE ,7-20*MONO
  678. 7600  PRINT "prepared word lists divided":PRINT:LOCATE ,7-20*MONO
  679. 7610  PRINT "into nine difficulty levels.":FOR I=1 TO 8000:NEXT
  680. 7620  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7620
  681. 7630  FOR I=6 TO 14 STEP 2:LOCATE I,5-20*MONO:PRINT STRING$(34,32):NEXT
  682. 7640  FOR I=1 TO 1000:NEXT:H=13-20*MONO
  683. 7650  LOCATE 4,4-20*MONO:PRINT "Each level has three word lists..."
  684. 7660  LOCATE 9,H:PRINT "1.  Adjectives":PRINT:LOCATE ,H:PRINT "2.  Nouns"
  685. 7670  PRINT:LOCATE ,H:PRINT "3.  Verbs":FOR I=1 TO 5000:NEXT
  686. 7680  H=4-12*MONO:LOCATE 18,H:PRINT "The twenty-seven word lists make "
  687. 7690  PRINT:LOCATE ,H-10*MONO
  688. 7700  PRINT "Word Attack! a complete vocabulary ";:IF MONO THEN 7720
  689. 7710  PRINT:PRINT:LOCATE ,H
  690. 7720  PRINT "program."
  691. 7730  FOR I=1 TO 5000:NEXT:CLS:FOR I=1 TO 2000:NEXT:GOSUB 6460
  692. 7740  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7740
  693. 7750  H=4-17*MONO:LOCATE 4,7-21*MONO:PRINT "Word Attack! also includes"
  694. 7760  FOR I=1 TO 2000:NEXT:LOCATE 9,H:PRINT CHR$(14);:LOCATE ,8-20*MONO
  695. 7770  PRINT "optional use of sound effects,":FOR I=1 TO 3000:NEXT
  696. 7780  LOCATE 13,H:PRINT CHR$(15);:LOCATE ,8-20*MONO
  697. 7790  PRINT "a complete instruction manual":PRINT:LOCATE ,8-20*MONO
  698. 7800  PRINT "for using the program,  and":FOR I=1 TO 3000:NEXT
  699. 7810  LOCATE 19,H:PRINT CHR$(15);:LOCATE ,8-20*MONO
  700. 7820  PRINT "a full editor for making new":PRINT:LOCATE ,8-20*MONO
  701. 7830  PRINT "new word lists.":FOR I=1 TO 5000:NEXT:B$=STRING$(35-2*MONO,32)
  702. 7840  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7840
  703. 7850  LOCATE 4:FOR I=1 TO 18:LOCATE ,4-17*MONO:PRINT B$:NEXT
  704. 7860  FOR I=1 TO 1000:NEXT
  705. 7870  LOCATE 10,4-12*MONO:PRINT "The following learning activities ";
  706. 7880  IF NOT MONO THEN PRINT:PRINT:LOCATE ,13
  707. 7890  PRINT "are included...":FOR I=1 TO 5000:NEXT
  708. 7900  FOR I=10 TO 12:LOCATE I,4-12*MONO:PRINT STRING$(35-25*MONO,32):NEXT
  709. 7910  FOR I=1 TO 1000:NEXT:LOCATE 4,4-5*MONO:PRINT "1. WORD DISPLAY"
  710. 7920  H=4-5*MONO:LOCATE ,H:PRINT "Vocabulary words and their":LOCATE ,H
  711. 7930  PRINT "definitions are displayed.":FOR I=1 TO 5000:NEXT
  712. 7940  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 7940
  713. 7950  PRINT:PRINT:LOCATE ,4-15*MONO:PRINT "2. MULTIPLE CHOICE QUIZ":H=4-15*MONO
  714. 7960  LOCATE ,H:PRINT "Vocabulary words are displayed":LOCATE ,H
  715. 7970  PRINT "and the user selects the best ":LOCATE ,H:PRINT "definition."
  716. 7980  FOR I=1 TO 5000:NEXT:H=4-25*MONO:PRINT:PRINT:LOCATE ,H
  717. 7990  PRINT "3. SENTENCE COMPLETION":LOCATE ,H
  718. 8000  PRINT "A sentence is displayed and the":LOCATE ,H
  719. 8010  PRINT "user types in the missing word.":FOR I=1 TO 5000:NEXT
  720. 8020  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 8020
  721. 8030  H=4-35*MONO:PRINT:PRINT:LOCATE ,H:PRINT "4. PLAY WORD ATTACK!"
  722. 8040  LOCATE ,H:PRINT "The user shoots the correct word ":LOCATE ,H
  723. 8050  PRINT "in a fast-paced arcade game.":FOR I=1 TO 6000:NEXT
  724. 8060  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 8060
  725. 8070  CLS:FOR I=1 TO 1000:NEXT:GOSUB 6460
  726. 8080  LOCATE 6,15-19*MONO:PRINT "Word Attack!":H=4-20*MONO
  727. 8090  LOCATE 10-MONO,H:PRINT "combines four learning activities "
  728. 8100  PRINT:LOCATE ,H:PRINT "and extensive data files to make "
  729. 8110  PRINT:LOCATE ,H:PRINT "an effective vocabulary building "
  730. 8120  PRINT:LOCATE ,H:PRINT "program."
  731. 8130  FOR I=1 TO 7000:NEXT
  732. 8140  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 8140
  733. 8150  CLS:FOR I=1 TO 2000:NEXT
  734. 8160  LOCATE 23,5-20*MONO:PRINT "Press ESC key at any time to exit"
  735. 8170  FOR I=1 TO 4000:NEXT:CLS:FOR I=1 TO 1000:NEXT
  736. 8180  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 8180
  737. 8190  GOSUB 6500: 'TITLE PAGE
  738. 8200  A$=INKEY$:IF A$=CHR$(27) THEN 8220 ELSE IF A$ <> "" THEN 8200
  739. 8210  GOTO 7420: 'RERUN DEMO
  740. 8220  RETURN
  741. 8240  GOSUB 6460:LOCATE 8,14-20*MONO:PRINT "Loading Editor":PRINT
  742. 8250  ON ERROR GOTO 8270
  743. 8260  CHAIN "EDITOR.BAS",36
  744. 8270  LOCATE 8,10-20*MONO:PRINT "Unable to Load Editor"
  745. 8280  LOCATE 12,9-20*MONO:PRINT "Insert Program Diskette"
  746. 8290  LOCATE 15,13-20*MONO:PRINT "if necessary"
  747. 8300  RESUME 8310
  748. 8310  ON ERROR GOTO 0
  749. 8320  GOSUB 6370:GOSUB 1680
  750. 8330  RETURN
  751.